import static org.junit.Assert.*;

import java.io.File;
import java.util.List;

import org.junit.Test;

import com.wirelesstransfer.server.WIFI.handlers.Files;

public class FilesTest {
	
	private Files files;
	private File file;
	private File file2;
	private List<File> listFiles;
	
	public FilesTest(){
		this.files = new Files();
		this.file = new File("1");
		this.file2 = new File("2");
	}
	
	@Test
	public void testGetInstance() {
		assertNotNull(files);
	}
	
	@Test
	public void testIsInListEmpty() {
		assertFalse(files.isInList(file));
	}
	
	@Test
	public void testIsInListOneObject() {
		files.addFile(file);
		assertTrue(files.isInList(file));
	}
	
	@Test
	public void testIsInListTwoObjects() {
		files.addFile(file);
		files.addFile(file2);
		assertTrue(files.isInList(file2));
	}
	
	@Test
	public void testAddFile() {
		boolean expected = true;
		boolean actual = files.addFile(file);
		assertEquals(actual,expected);
	}

	@Test
	public void testAddTwoFiles() {
		boolean expected = true;
		boolean actual = files.addFile(file);
		actual = files.addFile(file2);
		assertEquals(actual,expected);
	}
	
	@Test
	public void testRemoveFile() {
		files.addFile(file);
		assertTrue(files.removeFile(file));
	}
	
	@Test
	public void testRemoveOneFileEnd() {
		files.addFile(file);
		files.addFile(file2);
		assertTrue(files.removeFile(file2));
	}

//	@Test
//	public void testGetFilesEmpty() {
//		int expected = 0;
//		listFiles = files.getFiles();
//		int actual = listFiles.size();
//		assertTrue(expected == actual);
//	}
	
//	@Test
//	public void testGetFilesOneElement() {
//		int expected = 0;
//		files.addFile(file);
//		listFiles = files.getFiles();
//		int actual = listFiles.size();
//		assertTrue(expected == actual);
//	}

	@Test
	public void testToString() {
		fail("Not yet implemented");
	}

}
